Record এর ফিল্ড এক্সেস এবং আপডেট
Elm ভাষায়, Record হল একটি ডেটা টাইপ যা বিভিন্ন প্রপার্টি বা ফিল্ড ধারণ করে, যেগুলির নাম এবং মান থাকে। প্রতিটি ফিল্ডের নামটি ইউনিক এবং ফিল্ডের মান একটি নির্দিষ্ট টাইপের হতে পারে। Record ডেটা টাইপ ব্যবহার করে আপনি বিভিন্ন বৈশিষ্ট্যসম্বলিত একটি ডেটা স্ট্রাকচার তৈরি করতে পারেন।
এখানে আমরা Record এর ফিল্ড এক্সেস এবং আপডেট করার পদ্ধতি আলোচনা করব।
১. Record ডিফাইন করা
একটি Record তৈরি করার জন্য type alias ব্যবহার করতে হয়। type alias দিয়ে আপনি Record এর নাম এবং তার ফিল্ডগুলো সংজ্ঞায়িত করেন।
উদাহরণ:
type alias Person =
{ name : String
, age : Int
, isActive : Bool
}এখানে, Person একটি Record যা তিনটি ফিল্ড ধারণ করে: name, age, এবং isActive। প্রতিটি ফিল্ডের একটি টাইপ আছে: name হল String, age হল Int, এবং isActive হল Bool।
২. Record এর ফিল্ড এক্সেস
একটি Record এর ফিল্ড এক্সেস করতে আপনি ডট (.) অপারেটর ব্যবহার করতে পারেন।
উদাহরণ:
getName : Person -> String
getName person =
person.nameএখানে, getName ফাংশনটি Person টাইপের একটি Record নেয় এবং তার name ফিল্ডটি রিটার্ন করে।
ফাংশন কল করা উদাহরণ:
person1 = { name = "Alice", age = 30, isActive = True }
result = getName person1 -- ফলাফল হবে "Alice"এখানে, person1 একটি Person Record এবং getName ফাংশনটি তার name ফিল্ডটি রিটার্ন করছে।
৩. Record এর ফিল্ড আপডেট
Elm এ Record এর ফিল্ড আপডেট করার জন্য পুনরায় কপি করার একটি পদ্ধতি ব্যবহার করা হয়। আপনি একটি নতুন Record তৈরি করতে পারেন যা পূর্বের Record এর কিছু ফিল্ডের মান পরিবর্তন করবে, অন্য ফিল্ডগুলো অপরিবর্তিত থাকবে।
উদাহরণ:
updateAge : Person -> Int -> Person
updateAge person newAge =
{ person | age = newAge }এখানে, updateAge ফাংশনটি Person টাইপের একটি Record এবং একটি নতুন age গ্রহণ করে এবং একটি নতুন Person Record রিটার্ন করে যেখানে age আপডেট করা হয়েছে।
ফাংশন কল করা উদাহরণ:
person1 = { name = "Alice", age = 30, isActive = True }
updatedPerson = updateAge person1 35 -- ফলাফল হবে { name = "Alice", age = 35, isActive = True }এখানে, person1 Record এর age ফিল্ডটি 35 দিয়ে আপডেট করা হয়েছে, এবং অন্য ফিল্ডগুলি অপরিবর্তিত রয়েছে।
৪. একাধিক ফিল্ড আপডেট করা
একাধিক ফিল্ড আপডেট করতে চাইলে, প্রতিটি ফিল্ডের জন্য আলাদা করে আপডেট করতে হয়।
উদাহরণ:
updatePerson : Person -> String -> Int -> Bool -> Person
updatePerson person newName newAge newStatus =
{ person | name = newName, age = newAge, isActive = newStatus }এখানে, updatePerson ফাংশনটি Person Record এর তিনটি ফিল্ড (name, age, isActive) আপডেট করছে।
ফাংশন কল করা উদাহরণ:
person1 = { name = "Alice", age = 30, isActive = True }
updatedPerson = updatePerson person1 "Bob" 40 False
-- ফলাফল হবে { name = "Bob", age = 40, isActive = False }এখানে, person1 Record এর সব ফিল্ড আপডেট করা হয়েছে: name কে "Bob", age কে 40, এবং isActive কে False করে।
৫. Record এর সাথে Optional ফিল্ড (Maybe টাইপ)
কখনও কখনও আপনাকে Record এর মধ্যে optional (অবশ্যই থাকা) ফিল্ড থাকতে পারে, যেগুলোর মান থাকতে পারে অথবা না-থাকতে পারে। এই ক্ষেত্রে, আপনি Maybe টাইপ ব্যবহার করতে পারেন।
উদাহরণ:
type alias Person =
{ name : String
, age : Int
, nickname : Maybe String
}এখানে, nickname ফিল্ডটি একটি Maybe String টাইপ, যার মান হতে পারে Just <String> অথবা Nothing। Nothing মানে nickname ফিল্ডের মান নেই।
ফাংশন কল করার উদাহরণ:
person1 = { name = "Alice", age = 30, nickname = Just "Al" }
person2 = { name = "Bob", age = 25, nickname = Nothing }
getNickname : Person -> String
getNickname person =
case person.nickname of
Just nickname -> nickname
Nothing -> "No nickname"এখানে, getNickname ফাংশনটি Person Record এর nickname ফিল্ডের মান চেক করছে। যদি এটি Just nickname হয়, তবে সেই নাম ফেরত দেবে; অন্যথায় "No nickname" ফেরত দেবে।
ফাংশন কল করা উদাহরণ:
result1 = getNickname person1 -- ফলাফল হবে "Al"
result2 = getNickname person2 -- ফলাফল হবে "No nickname"উপসংহার
Record হল Elm ভাষার একটি শক্তিশালী ডেটা টাইপ যা বিভিন্ন প্রপার্টি বা ফিল্ড ধারণ করে। Elm এ Record এর ফিল্ড এক্সেস এবং আপডেট করার পদ্ধতি অত্যন্ত সোজা এবং কার্যকরী। আপনি . অপারেটর ব্যবহার করে ফিল্ড এক্সেস করতে পারেন এবং | অপারেটর ব্যবহার করে ফিল্ড আপডেট করতে পারেন। যদি একাধিক ফিল্ড পরিবর্তন করতে হয়, তবে একাধিক ফিল্ডের মান একইভাবে আপডেট করা যায়। এছাড়া, Maybe টাইপ ব্যবহার করে Optional ফিল্ডও পরিচালনা করা যায়।
Read more